昨天學到了實字常數(literal constants)該如何表示,今天來了解如何宣告變數(Variables)與常數(Constants)。
宣告變數使用 var
關鍵字,下面宣告了 num 變數為 int 型態,並給初始值為 10:
var num int = 10
使用 IDE 會提示說, int
可以省略,因為 Go 會自動推斷 10 的型態為 int
,因此也可以這樣宣告:
var num = 10
如果不給初始值的話,預定義變數都會有預設值, Go 語言稱之為零值(The zero value) , int
的零值是 0 ,所以下面兩行宣告是等價的:
var num int = 0
var num int
Go 可以一次宣告多個變數,下面的型態分別會推斷為 string
、 int
、 float64
:
var name, age, height = "Miles", 18, 169.9
也可以分多行宣告
var (
name = "Miles"
age = 18
height = 169.9
)
多行宣告並指定型態與指定初始值
var (
name string = "Miles"
age uint = 18
height float32 = 169.9
)
多行宣告並指定型態不指定初始值
var (
name string
age uint
height float32
)
在 func 裡,如果要宣告變數同時指定初值,可以使用短變數宣告:
name := "Miles"
age := 18
height := 169.9
這裡就如同 PHP 的
$name = 'Miles'
一樣,宣告變數同時給值
一樣可以寫成一行
name, age, height := "Miles", 18, 169.9
宣告變數使用 const
關鍵字,下面宣告了 num 變數為 int 型態,並給值為 10:
const num int = 10
這時 num 會是不可變的常數,試圖指定新值會在編譯時期報錯。
const num int = 10
// Error
num = 20
除了常數一定要給值外,其他宣告的方法都跟變數一樣,如一次宣告多個常數
const name, age, height = "Miles", 18, 169.9
多行宣告
const (
name = "Miles"
age = 18
height = 169.9
)
多行宣告並指定型態
const (
name string = "Miles"
age uint = 18
height float32 = 169.9
)
變數宣告了就是要用,不然要幹嘛?如果宣告了一個 num 變數沒使用, Go 會在編譯時期出錯:
./hello.go:8:6: num declared and not used
常數則可以宣告但不使用。
var
宣告變數const
宣告常數